package studia.figlewicz.math.library;

import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;

public class IndexSpot implements ZmiennaObjasniajaca {
	
	
	private ArrayList<NotowanieSpot> notowaniaSpot = new ArrayList<NotowanieSpot>();
	public ArrayList<NotowanieSpot> getNotowaniaSpot() {
		return notowaniaSpot;
	}
	public void setNotowanieSpot(ArrayList<NotowanieSpot> notowaniaSpot) {
		this.notowaniaSpot = notowaniaSpot;
		czyPosortowane = false;
	}
	public void addNotowanie(NotowanieSpot notowanie) {
		notowaniaSpot.add(notowanie);
		czyPosortowane = false;
	}
	
	@Override
	public LinkedHashMap<Date, Double> getPunkty() {
		LinkedHashMap<Date, Double> resoult = new LinkedHashMap<Date, Double>();
		if (!czyPosortowane)
			sortujNotowania();
		for(NotowanieSpot ns : notowaniaSpot) {
			resoult.put(ns.getDataNotowania(), new Double(ns.getCena()));
		}
		return resoult;
	}
	
	private boolean czyPosortowane = false;
	private void sortujNotowania() {
		if (czyPosortowane)
			return;
		
		LinkedHashMap<Date, NotowanieSpot> temp = new LinkedHashMap<Date, NotowanieSpot>();
		
		for(NotowanieSpot ns : notowaniaSpot) {
			temp.put(ns.getDataNotowania(), ns);
		}
		Utils.sortuj((LinkedHashMap)temp);
		
		notowaniaSpot.clear();
		for(NotowanieSpot ns : temp.values()) {
			notowaniaSpot.add(ns);
		}
		czyPosortowane = true;
	}
	
	
}

